using System.ComponentModel.DataAnnotations;

namespace FytSoa.Application.Hr.Param;

public class HrEmployeeAdd : AppEntity
{
    /// <summary>
    /// 姓名
    /// </summary>
    [Required]
    [StringLength(50)]
    public string Name { get; set; }
    
    /// <summary>
    /// 姓名字母
    /// </summary>
    public string Letter { get; set; }
    
    /// <summary>
    /// 头像
    /// </summary>
    public string Avatar { get; set; }

    /// <summary>
    /// 手机号码
    /// </summary>
    [Required]
    [StringLength(11)]
    public string Phone { get; set; }
    
    /// <summary>
    /// 邮箱
    /// </summary>
    public string Email { get; set; }

    /// <summary>
    /// 证件类型
    /// </summary>
    public long CertificateType { get; set; }

    /// <summary>
    /// 证件号码
    /// </summary>
    public string CertificateNumber { get; set; }

    /// <summary>
    /// 性别
    /// </summary>
    [Required]
    [StringLength(20)]
    public string Sex { get; set; }

    /// <summary>
    /// 入职时间
    /// </summary>
    [Required]
    public DateTime InductionTime { get; set; }

    /// <summary>
    /// 试用期
    /// </summary>
    public string TrialTime { get; set; }

    /// <summary>
    /// 转正日期
    /// </summary>
    public DateTime? PositiveTime { get; set; }

    /// <summary>
    /// 工号
    /// </summary>
    [Required]
    [StringLength(30)]
    public string WorkNumber { get; set; }

    /// <summary>
    /// 所属部门
    /// </summary>
    public long OrganizationId { get; set; }

    /// <summary>
    /// 上级编号
    /// </summary>
    [Required]
    public long LeaderId { get; set; }

    /// <summary>
    /// 岗位
    /// </summary>
    public long PostId { get; set; } = 0;

    /// <summary>
    /// 招聘渠道
    /// </summary>
    public long JobSource { get; set; } = 0;

    /// <summary>
    /// 聘用形式(1正式/2非正式)
    /// </summary>
    public int HireType { get; set; }

    /// <summary>
    /// 状态
    /// </summary>
    public long Status { get; set; } = 0;

    /// <summary>
    /// 是否已婚
    /// </summary>
    [Required]
    public string IsMarriage { get; set; } 

    /// <summary>
    /// 是否已育
    /// </summary>
    [Required]
    public string IsSon { get; set; } 

    /// <summary>
    /// 民族
    /// </summary>
    [Required]
    [StringLength(100)]
    public string Nation { get; set; }

    /// <summary>
    /// 政治面貌
    /// </summary>
    [Required]
    [StringLength(100)]
    public string Political { get; set; }

    /// <summary>
    /// 学历
    /// </summary>
    [Required]
    [StringLength(100)]
    public string Degree { get; set; }

    /// <summary>
    /// 居住地址
    /// </summary>
    public string Address { get; set; }
    
    /// <summary>
    /// 备注
    /// </summary>
    public string Summary { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreateTime { get; set; } = DateTime.Now;

}